線上影音

Home > ANSYS Designer 教學 >如何正確地得到訊號的頻譜成份?

 

本文始於2023年,說明從2023R1 Designer circuit顯示訊號頻譜的正確方法。這看似普通的功能,其實大有學問。

雖然本站2017年就於[如何建立帶雜訊成份的電源模型]一文中介紹過正確產生頻譜的方法,新版本設定改以直接設Max. freq(不再須設#Harmonic與留意Resolution),這更直觀易懂,但還是須清楚FFT的理論基礎(取樣定理Sampling Theory)才能正確使用。

  1. 以DDR4 3200MHz為例 (DQS 1600MHz)

    1.1 DQS訊號與電源SSN波形

    1.2 fmax=3GHz的DQS訊號與電源SSN的FFT

    1.3 fmax=3.1GHz的DQS訊號與電源SSN的FFT

  2. 設定fmax=10G~30GHz

    2.1 fmax=10GHz的DQS訊號與電源SSN的FFT

    2.2 fmax=10.5GHz的DQS訊號與電源SSN的FFT

    2.3 fmax=20GHz的DQS訊號與電源SSN的FFT

    2.4 fmax=21GHz的DQS訊號與電源SSN的FFT

    2.5 fmax=30GHz的DQS訊號與電源SSN的FFT

    2.6 fmax=31.5GHz的DQS訊號與電源SSN的FFT

  3. 原理說明

  4. 建議設定

  5. 問題與討論

    5.1 不同的頻域演算法如何選擇?

    5.2 Window Type指什麼? 如何選擇?

  6. 參考

  1. 以DDR4 3200MHz為例 (DQS 1600MHz)

    故事是這樣開始的:假設想看DDR4 3200MHz data rate(DQS 1600MHz)的頻譜0~3GHz(為了改善EMI)

    1.1 DQS訊號與電源SSN波形

    1.2 fmax=3GHz的DQS訊號與電源SSN的FFT

    1.3 fmax=3.1GHz的DQS訊號與電源SSN的FFT

    看到這裡,相信各位應該感到頭暈了

    對DQS訊號來說,怎麼fmax=3GHz與fmax=3.1GHz的FFT結果,除了基頻fc=1.6GHz一樣,其他頻點都不同? 而對VDD上含SNN雜訊的電源來說,則更是完全不同,哪個設定得到的結果才是對的?

    此處的兩種設定所得到的FFT結果都不對。(fmax設太小) ... 想先偷看答案的,在這裡

  2. 設定fmax=10~30GHz

    2.1 fmax=10GHz的DQS訊號與電源SSN的FFT

    2.2 fmax=10.5GHz的DQS訊號與電源SSN的FFT

    2.3 fmax=20GHz的DQS訊號與電源SSN的FFT

    2.4 fmax=21GHz的DQS訊號與電源SSN的FFT

    2.5 fmax=30GHz的DQS訊號與電源SSN的FFT

    2.6 fmax=31.5GHz的DQS訊號與電源SSN的FFT

  3. 原理說明

    1.6GHz DQS時鐘訊號具1/3/5/7奇次諧波(分別是1.6G/4.8G/8G/11.2GHz),所以fmax設10GHz即可確保抓到第五次諧波(10GHz>8GHz),但無法避免第七次諧波11.2GHz因大於fmax且小於fs,基於取樣定理(Sampling Theory),其可以被看到(被取樣到),但頻點位置無法被正確還原(被折進10GHz內,也就是8.8GHz那一根)。又此根能量仍大於-50dB,如果我們的目標是所有因取樣率不足誤折進來的"假"能量頻點都小於-50dB(可忽略),那fmax就要取20GHz才足夠。

    FFT設定內的fmax是FFT轉換的頻寬,依取樣定理其兩倍頻率fs=2*fmax為FFT的取樣頻率。而原本在fmax頻寬內的頻率能量保證會被抓到,但不代表出現在0~fmax的FFT轉換每根頻率都是正確的,因原本在fmax~fs範圍內的頻率能量,會因取樣頻率未達兩倍而被誤取樣折進0~fmax範圍內。

  4. 建議設定

    fmax設定,與FFT結果準確判定的"簡單"原則:

    • 當設定fmax=F與fmax=1.05*F所得到的FFT結果明顯不同,表示fmax設太小了
    • 不同fmax下FFT結果不同的頻點,該頻點本身並不存在,而是高頻成份(諧波)因取樣折進你所觀察的頻帶
    • 當你在意的頻寬範圍內,目標頻點值一直不對,持續加大fmax至該頻點不隨fmax變大而不同即可 (很簡單吧)
    • fmax設多高才夠,視應用需求而定。以此例來說若要看DQS,建議fmax=20GHz;若要看VDD SSN,建議fmax=30GHz
  5. 問題與討論

    5.1 不同的頻域演算法如何選擇?

    Ans:Algorithm內有三種演算法可供選擇[Fourier Integration]、[FFT]、[Fourier Transform],默認是使用[FFT],其處理速度最快。

    HELP內說明:Fourier Integration is much slower compared with FFT, but it can be more accurate since it preserves the shape of underlying waveform without resampling.

    Fourier Integration雖然比FFT慢很多,但其沒有像FFT對於未達兩倍取樣頻率的頻點會被誤取樣的問題。又以本文的DQS/VDD訊號為例測試,Fourier Transform試起來則跟FFT並沒有差異。

    5.2 Window Type指什麼? 如何選擇?

    Ans:HELP內有幾張圖說明不同的FFT Window Type長什麼樣子,需要更多訊息的可以參考[1]。

    Each window function trades off the ability to resolve comparable signals and frequencies versus the ability to resolve signals of different strengths and frequencies.

    Designer circuit默認使用[Rectangular],但也有人喜歡使用[Hanning] window [2],認為其滿足95%應用情境。若以本文的DQS/VDD訊號為例測試,使用[Rectangular]與[Hanning]窗函數的結果相同。

  6. 對大部分人來說,以上內容還是不足以幫助理解Window Type如何用於時域-頻域間的訊號處理?

    下圖的中間即是以[Rectangular Windower]為例,說明其作用

  7. 參考

[1] Window Function -- Wiki

[2] Understanding FFTs and Windowing -- National Instruments